summaryrefslogtreecommitdiff
path: root/src/astbranch.h
blob: 0c558aa5dda8d2eb0514ea97efa500c2648c73e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef AST_BRANCH_H
#define AST_BRANCH_H

#include "astnode.h"

#include <bu/list.h>

class AstBranch : public AstNode
{
friend Bu::Formatter &operator<<( Bu::Formatter &f, const AstBranch &b );
public:
	AstBranch( Type eType );
	virtual ~AstBranch();

	AstNode *addNode( AstNode *pNode );
	AstBranch *getParent() const { return pParent; }

	typedef Bu::List<AstNode *> NodeList;
	const NodeList &getNodeList() const { return lNodes; }

private:
	AstBranch *pParent;
	NodeList lNodes;
};

Bu::Formatter &operator<<( Bu::Formatter &f, const AstBranch &b );

#endif